--------------------DATABASE MOTOTAXI ---------------------------------------------------------------------------------------------------
--------------------06/06/2009 05:19:00 
--------------------REGIS 
CREATE sequence seq_cliente_id ;
CREATE TABLE TB_CLIENTE (
    ID_CLIENTE            INTEGER NOT NULL PRIMARY KEY DEFAULT NEXTVAL('SEQ_CLIENTE_ID'),
    NM_CLIENTE            VARCHAR (50) NOT NULL ,
    ID_LOGRADOURO         INTEGER NOT NULL ,
    NUMERO                VARCHAR(10),
    COMPLEMENTO           VARCHAR(10),
    ANTIGA                VARCHAR(10),
    ID_BAIRRO             SMALLINT NOT NULL ,
    ID_CIDADE             SMALLINT NOT NULL ,
    CEP                   VARCHAR(12),
    ID_CATEGORIA_CLIENTE  SMALLINT NOT NULL ,
    DT_CADASTRO           TIMESTAMP DEFAULT 'NOW',
    ID_USUARIO            SMALLINT NOT NULL ,
    DS_PONTO_REFERENCIA  VARCHAR (250) 
);

CREATE SEQUENCE SEQ_LOGRADOURO_ID ;
CREATE TABLE TB_LOGRADOURO
    (
   ID_LOGRADOURO INT PRIMARY KEY NOT NULL DEFAULT NEXTVAL('SEQ_LOGRADOURO_ID') ,
   LOGRADOURO VARCHAR (50) NOT NULL ,
   NM_LOGRADORO  VARCHAR (200) NOT NULL,
   ID_BAIRRO INT NOT NULL ,
   ID_CIDADE INT NOT NULL ,
   CEP VARCHAR (11) NOT NULL ,
   DS_PONTO_REFERENCIA VARCHAR (100) ,
   DT_CADASTRO timestamp default 'NOW'
   );

   CREATE SEQUENCE SEQ_BAIRRO_ID ;
   CREATE TABLE TB_BAIRRO
    (
     ID_BAIRRO INT NOT NULL PRIMARY KEY DEFAULT NEXTVAL('SEQ_BAIRRO_ID'),
     BAIRRO VARCHAR (100) NOT NULL ,
     DT_CADASTRO TIMESTAMP default 'NOW'
    );

    CREATE SEQUENCE SEQ_CIDADE_ID ;
    CREATE table TB_CIDADE (
       ID_CIDADE INT NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('SEQ_CIDADE_ID'),
       CIDADE VARCHAR (120) NOT NULL ,
        DT_CADASTRO TIMESTAMP default 'NOW'
    );

    CREATE SEQUENCE SEQ_CATEGORIA_CLIENTE_ID ;
    CREATE TABLE TB_CATEGORIA_CLIENTE
      (
      ID_CATEGORIA_CLIENTE INT NOT NULL PRIMARY KEY DEFAULT NEXTVAL ('SEQ_CATEGORIA_CLIENTE_ID'),
       DS_CATEGORIA_CLIENTE VARCHAR (50) NOT NULL
      );

    CREATE SEQUENCE SEQ_PEDIDO_ID ;
    CREATE TABLE TB_PEDIDO
    (ID_PEDIDO INT NOT NULL PRIMARY KEY DEFAULT NEXTVAL('SEQ_PEDIDO_ID'),
     ID_CLIENTE INT NOT NULL ,
     SOLICITANTE VARCHAR ( 50) NOT NULL ,
     ID_LOGRADOURO INT NOT null ,
     NUMERO VARCHAR (10) NOT NULL ,
     ANTIGA VARCHAR (10) ,
     COMPLEMENTO VARCHAR (20) ,
     ID_BAIRRO INT NOT NULL ,
     ID_USUARIO INT NOT NULL ,
     ID_CATEGORIA_CLIENTE INT NOT NULL ,
     DT_CADASTRO TIMESTAMP DEFAULT 'NOW'
     );

     CREATE SEQUENCE SEQ_USUARIO_ID ;
     CREATE TABLE TB_USUARIO 
     (
      ID_USUARIO INT NOT NULL PRIMARY KEY DEFAULT NEXTVAL('SEQ_USUARIO_ID'),
      NM_USUARIO VARCHAR (20)NOT  NULL ,
      DS_SENHA VARCHAR (10) NOT NULL ,
      ID_PERFIL_ACESSO INT NOT NULL ,
      DT_CADASTRO TIMESTAMP DEFAULT 'NOW'
      );

--------------FK _TB_CLIENTE ---------------------------------------------------------
ALTER TABLE TB_CLIENTE ADD CONSTRAINT FK_CLIENTE_LOGRADOURO FOREIGN KEY (ID_LOGRADOURO)
references tb_logradouro (ID_LOGRADOURO) ;

ALTER TABLE TB_CLIENTE ADD CONSTRAINT FK_CLIENTE_BAIRRO FOREIGN KEY (ID_BAIRRO)
references tb_bairro (ID_BAIRRO) ;


ALTER TABLE TB_CLIENTE ADD CONSTRAINT FK_CLIENTE_CIDADE FOREIGN KEY (ID_CIDADE)
references tb_CIDADE (ID_CIDADE) ;

ALTER TABLE TB_CLIENTE ADD CONSTRAINT FK_CLIENTE_CATEGORIA FOREIGN KEY (ID_CATEGORIA_CLIENTE)
references tb_categoria_cliente (ID_CATEGORIA_CLIENTE) ;


ALTER TABLE TB_CLIENTE ADD CONSTRAINT FK_CLIENTE_PEDIDO FOREIGN KEY (ID_CLIENTE)
references tb_pedido (ID_CLIENTE) ;
--------------FOREIGN KEY TB-LOGRADOURO 

ALTER TABLE TB_LOGRADOURO ADD CONSTRAINT FK_LOGRADOURO_BAIRRO FOREIGN KEY  (ID_BAIRRO)
references TB_BAIRRO (ID_BAIRRO) ;

ALTER TABLE tb_logradouro ADD constraint FK_LOGRADOURO_CIDADE FOREIGN KEY (ID_CIDADE)
references tb_cidade (ID_CIDADE) ;

--------------FOREIGN KEY TB_PEDIDO -------------------------------------------------

ALTER TABLE tb_pedido ADD CONSTRAINT FK_PEDIDO_LOGRADOURO FOREIGN KEY (ID_LOGRADOURO)
references tb_logradouro (ID_LOGRADOURO) ;

ALTER TABLE tb_pedido ADD CONSTRAINT FK_PEDIDO_BAIRRO FOREIGN KEY (ID_BAIRRO)
references tb_bairro (ID_BAIRRO) ;

ALTER TABLE TB_CLIENTE ADD constraint FK_CLIENTE_USUARIO foreign KEY (ID_USUARIO)
references tb_usuario (ID_USUARIO) ;


ALTER TABLE TB_PEDIDO ADD constraint FK_PEDIDO_USUARIO FOREIGN KEY (ID_USUARIO)
REFERENCES tb_usuario (ID_USUARIO);

ALTER TABLE tb_pedido ADD constraint FK_PEDIDO_CLIENTE FOREIGN KEY (ID_CLIENTE)
REFERENCES tb_cliente (ID_CLIENTE);

ALTER table TB_PEDIDO ADD constraint FK_PEDIDO_CATEGORIA_CLIENTE FOREIGN KEY (ID_CATEGORIA_CLIENTE)
references tb_categoria_cliente (ID_CATEGORIA_CLIENTE);















